ExtJS Window Component একটি মডাল বা নন-মডাল পপআপ উইন্ডো তৈরি করতে ব্যবহৃত হয়, যা সাধারণত ইউজারের ইনপুট বা সেলফ কনটেইনড ভিউ প্রদর্শনের জন্য ব্যবহার করা হয়। এটি একটি বিশেষ ধরনের প্যানেল যা ইউজারের একশন অনুযায়ী খুলতে বা বন্ধ হতে পারে। ExtJS-এ উইন্ডো তৈরি করা খুব সহজ এবং এটি অনেক কাস্টমাইজেশন অপশন প্রদান করে।
এই গাইডে, আমরা দেখব কিভাবে Window Component তৈরি করা যায় এবং এটি কিভাবে ব্যবহার করা হয়।
Window Component তৈরি করতে Ext.window.Window
ক্লাস ব্যবহার করা হয়। উইন্ডোতে সাধারণত একটি শিরোনাম, কন্টেন্ট (যেমন ফর্ম, গ্রিড, টেক্সট), এবং এক বা একাধিক বাটন থাকে। উইন্ডোটি সাধারণত modal
হতে পারে, যেখানে ইউজারকে শুধুমাত্র উইন্ডোর ভিতরে থাকা অপশনগুলির মধ্য থেকে নির্বাচন করতে দেয়।
Ext.create('Ext.window.Window', {
title: 'My Window',
width: 400,
height: 300,
layout: 'fit', // উইন্ডোর ভিতরে কনটেন্ট ফিট করবে
modal: true, // এটি একটি মডাল উইন্ডো হবে
items: [{
xtype: 'panel', // উইন্ডোর ভিতরে একটি প্যানেল
html: 'Welcome to the ExtJS Window Component!'
}],
buttons: [
{
text: 'OK',
handler: function() {
console.log('OK Button Clicked');
this.up('window').close(); // উইন্ডো বন্ধ করা
}
},
{
text: 'Cancel',
handler: function() {
console.log('Cancel Button Clicked');
this.up('window').close(); // উইন্ডো বন্ধ করা
}
}
]
}).show(); // উইন্ডোটি প্রদর্শন করবে
ব্যাখ্যা:
title
: উইন্ডোর শিরোনাম।width
এবং height
: উইন্ডোর আকার।layout: 'fit'
: উইন্ডোর ভিতরের কনটেন্ট সম্পূর্ণ উইন্ডোতে ফিট করবে।modal: true
: এটি একটি মডাল উইন্ডো হবে, যা ইউজারকে অন্য উইন্ডো বা কন্টেন্টে কাজ করতে দেবে না যতক্ষণ না উইন্ডোটি বন্ধ না করা হয়।items
: উইন্ডোর ভিতরে কম্পোনেন্ট যোগ করা হয়েছে (এখানে একটি প্যানেল)।buttons
: উইন্ডোর নিচে দুটি বাটন, OK এবং Cancel। বাটনগুলোর handler
ফাংশন উইন্ডোটি বন্ধ করবে।Dynamic Windows তৈরি করা যায় যেখানে উইন্ডোটি কোন ইভেন্টের মাধ্যমে খোলা বা বন্ধ করা হয়। এটি সাধারণত ইউজারের ইন্টারঅ্যাকশন থেকে নির্ধারিত হয়।
Ext.create('Ext.button.Button', {
text: 'Open Window',
renderTo: Ext.getBody(),
handler: function() {
Ext.create('Ext.window.Window', {
title: 'Dynamic Window',
width: 400,
height: 200,
layout: 'fit',
modal: true,
items: [{
xtype: 'panel',
html: 'This window was opened dynamically by clicking the button.'
}],
buttons: [{
text: 'Close',
handler: function() {
this.up('window').close();
}
}]
}).show();
}
});
এখানে, যখন ইউজার Open Window
বাটনে ক্লিক করবে, তখন একটি নতুন উইন্ডো খোলা হবে, যা modal
এবং fit
লেআউট ব্যবহার করে।
ExtJS উইন্ডো কম্পোনেন্টটি resizable এবং draggable (এটি ড্র্যাগ করে টেনে আনা যেতে পারে) হতে পারে। আপনি resizable
এবং draggable
কনফিগারেশন ব্যবহার করে উইন্ডোর এই আচরণগুলি কাস্টমাইজ করতে পারেন।
Ext.create('Ext.window.Window', {
title: 'Resizable and Draggable Window',
width: 400,
height: 300,
layout: 'fit',
resizable: true, // উইন্ডো রিসাইজ করা যাবে
draggable: true, // উইন্ডো ড্র্যাগ করা যাবে
modal: true,
items: [{
xtype: 'panel',
html: 'This window can be resized and dragged around.'
}],
buttons: [{
text: 'Close',
handler: function() {
this.up('window').close();
}
}]
}).show();
এখানে, resizable: true
এবং draggable: true
কনফিগারেশন ব্যবহার করা হয়েছে, যার ফলে উইন্ডোটি রিসাইজ এবং ড্র্যাগ করা যাবে।
ফর্ম কম্পোনেন্ট ব্যবহার করে উইন্ডোতে ডেটা ইনপুট ফিচার যোগ করা যেতে পারে, যেমন ব্যবহারকারীর নাম, ইমেল ইত্যাদি। উইন্ডোতে ফর্ম উপাদানগুলি রাখার জন্য Ext.form.Panel
ব্যবহার করা হয়।
Ext.create('Ext.window.Window', {
title: 'User Form',
width: 400,
height: 250,
layout: 'fit',
modal: true,
items: [{
xtype: 'form',
bodyPadding: 10,
items: [{
xtype: 'textfield',
fieldLabel: 'Name',
name: 'name',
allowBlank: false
}, {
xtype: 'textfield',
fieldLabel: 'Email',
name: 'email',
vtype: 'email',
allowBlank: false
}],
buttons: [{
text: 'Submit',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
console.log('Form Submitted:', form.getValues());
form.reset();
}
}
}]
}]
}).show();
এখানে:
xtype: 'form'
ব্যবহার করা হয়েছে উইন্ডোর ভিতরে একটি ফর্ম তৈরি করার জন্য।textfield
ব্যবহার করে নাম এবং ইমেইল ইনপুট ফিল্ড তৈরি করা হয়েছে।vtype: 'email'
ব্যবহার করা হয়েছে ইমেইল ভ্যালিডেশনের জন্য।ExtJS উইন্ডোতে বিভিন্ন events (ইভেন্ট) যুক্ত করা যায়, যেমন উইন্ডো খুললে, বন্ধ হলে, এবং লোড হওয়ার সময়। এই ইভেন্টগুলি ব্যবহার করে উইন্ডোর আচরণ কাস্টমাইজ করা যায়।
Ext.create('Ext.window.Window', {
title: 'Window Events Example',
width: 400,
height: 300,
modal: true,
items: [{
xtype: 'panel',
html: 'Click outside the window to close it.'
}],
listeners: {
show: function() {
console.log('Window is shown');
},
close: function() {
console.log('Window is closed');
}
}
}).show();
এখানে, show
এবং close
ইভেন্ট ব্যবহার করা হয়েছে উইন্ডোটি প্রদর্শিত হওয়ার এবং বন্ধ হওয়ার সময় একটি কাস্টম ফাংশন কল করতে।
Ext.window.Window
ক্লাস ব্যবহৃত হয়, যা কাস্টমাইজড কনটেন্ট এবং কন্ট্রোল প্রদান করে।ExtJS উইন্ডো কম্পোনেন্ট ব্যবহার করে আপনি ইন্টারঅ্যাকটিভ এবং ইউজার-বান্ধব পপআপ উইন্ডো তৈরি করতে পারবেন।
Read more